package br.com.sgi.dao.impl;



import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.hibernate.Hibernate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import br.com.sgi.autentication.UsuarioLogado;
import br.com.sgi.dao.AgendaDao;
import br.com.sgi.model.Agenda;
import br.com.sgi.service.AgendaService;

@Service("agedaService")
public class AgendaServiceImpl implements AgendaService {

	@Autowired
	private AgendaDao agendaDao;
	
	
	public void salvar(Agenda agenda) {
		agenda.setSistema(UsuarioLogado.getIgrejaPertence().getSistema());
		agendaDao.save(agenda);		
	}

	public List<Agenda> buscarAgendasPorMesAno(String date) {
		Map<String, Object> params = new HashMap<String, Object>();
		params.put("username",UsuarioLogado.getCoUsuario());
		params.put("coIgreja",UsuarioLogado.getCoIgrejaLocal());
		params.put("data", date);	
		List<Agenda> agendas =  agendaDao.findByNamedParams("busca_agenda_mes_ano", params);
		for(Agenda ag : agendas){
			Hibernate.initialize(ag.getIgrejas());
		}
		
		return agendas;
	}

	public void update(Agenda agenda) {
		agendaDao.update(agenda);
	}

	@Override
	public void excluir(Long coAgenda) {
		agendaDao.deleteById(coAgenda);
		
	}

	@Override
	public List<Agenda> buscarAgendaDoDia() {
		Map<String, Object> params = new HashMap<String, Object>();
		params.put("username",UsuarioLogado.getCoUsuario());
		params.put("coIgreja",UsuarioLogado.getCoIgrejaLocal());
		return agendaDao.findByNamedParams("buscarCompromissoDia", params);
	}

	@Override
	public List<Agenda> buscarAgendaDoMes() {
		Map<String, Object> params = new HashMap<String, Object>();
		params.put("username",UsuarioLogado.getCoUsuario());
		params.put("coIgreja",UsuarioLogado.getCoIgrejaLocal());
		return agendaDao.findByNamedParams("buscarCompromissoMes", params);
	}
	

}
